Verifying correctness of persistent concurrent data structures: a sound and complete method
نویسندگان
چکیده
Abstract Non-volatile memory (NVM), aka persistent memory, is a new paradigm that preserves its contents even after power loss. The expected ubiquity of NVM has stimulated interest in the design concurrent data structures, together with associated notions correctness. In this paper, we present formal proof technique for durable linearizability , which correctness criterion extends to handle crashes and recovery context ofNVM.Our proofs are based on refinement Input/Output automata (IOA) representations structures. To end, develop generic procedure transforming any standard sequential structure into specification prove transformation both sound complete. Since only exhibits durably linearizable behaviours, it serves as abstract our proof. We exemplify recently proposed persistentmemory queue builds Michael Scott’s lock-free queue. support proofs, describe an automated translation from code IOA thread-local verifying invariants.
منابع مشابه
A A Sound and Complete Proof Technique for Linearizability of Concurrent Data Structures
level. For our first level A we extend ADT with histories and finalization giving us a new data type HADT = (HAState,History , History × HAInit , (HAOpp,i)p∈P,i∈I ,HAFin). Basically, we extend the local state of ADT with a new variable storing the current history of a run. States are thus of type (as , hs) where as is a state of ADT and hs a sequential history. HAState =̂ AState ∧ [hs : seqEvent...
متن کاملVerifying Concurrent Data Structures Using Data-Expansion Technical Report
We present the first thread modular proof of a highly concurrent binary search tree. This proof tackles the problem of reasoning about complicated thread interferences using only thread modular invariants. The key tool in this proof is the Data-Expansion Lemma, a novel lemma that allows us to reason about search operations in any given state. We highlight the power of this lemma when combined w...
متن کاملVerifying Reasoner Correctness - A Justication Based Method
DL reasoners are complex pieces of software that work on even more complex input which makes manual verification difficult. A single ontology can have hundreds or thousands of classes and thus its classification involve an unsurveyable number of subsumption tests. We propose a new method for debugging classification across multiple reasoners which employs justifications generated from the set o...
متن کاملPractical Model-Checking Method for Verifying Correctness of MPI Programs
Formal program verification often requires creating a model of the program and running it through a model-checking tool. However, this model-creation step is itself error prone, tedious, and difficult for someone not familiar with formal verification. In this paper, we describe a tool for verifying correctness of MPI programs that does not require the creation of a model and instead works direc...
متن کاملCorrectness of Multiplicative (and Exponential) Proof Structures is NL -Complete
We provide a new correctness criterion for unit-free MLL proof structures and MELL proof structures with units. We prove that deciding the correctness of a MLL and of a MELL proof structure is NL-complete. We also prove that deciding the correctness of an intuitionistic multiplicative essential net is NL-complete.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Formal Aspects of Computing
سال: 2021
ISSN: ['1433-299X', '0934-5043']
DOI: https://doi.org/10.1007/s00165-021-00541-8